Apache Commons Collections লাইব্রেরি Java Collections Framework (JCF)-এর উপরে অতিরিক্ত ফিচার সরবরাহ করে, যার মধ্যে Nested Maps এবং Complex Data Structures তৈরি করার জন্য প্রয়োজনীয় সরঞ্জামও রয়েছে। Nested Maps হল এমন Map অবজেক্ট যা অন্যান্য Map অবজেক্ট ধারণ করে, যার মাধ্যমে ডেটাকে স্তরভিত্তিকভাবে সংরক্ষণ করা যায়।
এটি বিশেষভাবে উপকারী যখন আপনাকে ডেটা হায়ারার্কিকালভাবে সংরক্ষণ করতে হয়, যেমন database records, configuration settings, multi-level categories, বা এমন কোনো ডেটা যেখানে একাধিক স্তরের মান থাকতে পারে।
Nested Maps বা Map of Maps হল এমন একটি ডেটা স্ট্রাকচার যা একটি Map এর ভিতরে অন্য একটি Map রাখে। এটি সাধারণত ব্যবহার করা হয় যখন আপনার ডেটায় একাধিক স্তরের সম্পর্ক থাকে। উদাহরণস্বরূপ, আপনি যদি একটি department এবং তার মধ্যে থাকা employees সংরক্ষণ করতে চান, তাহলে একটি Map ব্যবহার করা যেতে পারে যার মধ্যে প্রতিটি department একটি সাব-ম্যাপ হিসেবে employee এর তথ্য ধারণ করবে।
Nested Map তৈরি করতে আপনি সাধারণ Map<String, Map<String, String>> স্ট্রাকচার ব্যবহার করতে পারেন, যেখানে প্রথম Map এর কী একটি department এবং তার মানটি একটি আরেকটি Map যা ওই department এর employees সংরক্ষণ করবে।
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.collections4.map.HashedMap;
import java.util.Map;
public class NestedMapExample {
public static void main(String[] args) {
// Creating the outer map (departments)
Map<String, Map<String, String>> departmentMap = new HashedMap<>();
// Creating the inner map (employees) for 'Sales' department
Map<String, String> salesEmployees = new HashedMap<>();
salesEmployees.put("E1", "John Doe");
salesEmployees.put("E2", "Jane Smith");
// Adding the 'Sales' department and its employees to the departmentMap
departmentMap.put("Sales", salesEmployees);
// Creating the inner map (employees) for 'HR' department
Map<String, String> hrEmployees = new HashedMap<>();
hrEmployees.put("E3", "Alice Johnson");
hrEmployees.put("E4", "Bob Brown");
// Adding the 'HR' department and its employees to the departmentMap
departmentMap.put("HR", hrEmployees);
// Printing the nested map (department -> employee)
System.out.println(departmentMap);
}
}
এখানে:
আউটপুট:
{Sales={E1=John Doe, E2=Jane Smith}, HR={E3=Alice Johnson, E4=Bob Brown}}
এটি একটি nested map যা ডেটাকে স্তরভিত্তিকভাবে (একটি department এবং তার employees) সংরক্ষণ করছে।
Apache Commons Collections লাইব্রেরি ব্যবহার করে আপনি Complex Data Structures তৈরি করতে পারেন, যেখানে একাধিক স্তরের Map এবং List এর মিশ্রণ থাকতে পারে। এই ধরনের ডেটা স্ট্রাকচারগুলি ডেটার হায়ারার্কি সংরক্ষণ করতে সাহায্য করে এবং সাধারণত real-world applications-এ ব্যবহৃত হয়, যেমন configuration files, multi-level categories, বা nested records।
ধরা যাক, আপনি একটি course registration system তৈরি করছেন যেখানে প্রতিটি student এর name এবং তার enrolled courses থাকবে। প্রতিটি কোর্সের বিস্তারিত তথ্যও থাকতে পারে (যেমন কোর্সের নাম, কোড ইত্যাদি)। এ ক্ষেত্রে, List of Maps ব্যবহার করা যেতে পারে।
import org.apache.commons.collections4.map.HashedMap;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
public class ComplexDataStructureExample {
public static void main(String[] args) {
// Creating a list to store students
List<Map<String, Object>> students = new ArrayList<>();
// Creating a map for student 1
Map<String, Object> student1 = new HashedMap<>();
student1.put("name", "John Doe");
// Creating courses for student 1
Map<String, String> courses1 = new HashedMap<>();
courses1.put("CS101", "Computer Science 101");
courses1.put("MATH101", "Calculus I");
student1.put("courses", courses1);
// Adding student 1 to the student list
students.add(student1);
// Creating a map for student 2
Map<String, Object> student2 = new HashedMap<>();
student2.put("name", "Jane Smith");
// Creating courses for student 2
Map<String, String> courses2 = new HashedMap<>();
courses2.put("BIO101", "Biology 101");
courses2.put("CHEM101", "Chemistry I");
student2.put("courses", courses2);
// Adding student 2 to the student list
students.add(student2);
// Printing the complex data structure (List of Maps)
System.out.println(students);
}
}
এখানে:
আউটপুট:
[{name=John Doe, courses={CS101=Computer Science 101, MATH101=Calculus I}}, {name=Jane Smith, courses={BIO101=Biology 101, CHEM101=Chemistry I}}]
এটি একটি complex data structure তৈরি করেছে, যেখানে একটি List এর মধ্যে Map অবজেক্টগুলি আছে, প্রতিটি ছাত্রের জন্য তার নাম এবং কোর্সের তালিকা সংরক্ষিত আছে।
Apache Commons Collections লাইব্রেরি nested maps এবং complex data structures তৈরি করার জন্য শক্তিশালী এবং নমনীয় সমাধান প্রদান করে। Nested Maps হল এমন Map যা অন্য Map ধারণ করে, এবং এটি একটি ডেটা স্ট্রাকচার যা স্তরভিত্তিকভাবে ডেটা ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এছাড়াও, complex data structures তৈরি করতে List of Maps এর মতো কৌশল ব্যবহার করা যেতে পারে, যেখানে একাধিক Map একসাথে কাজ করে। এই ধরনের ডেটা স্ট্রাকচারগুলি real-world applications এর জন্য খুবই উপকারী, যেখানে ডেটার মধ্যে বিভিন্ন স্তরের সম্পর্ক থাকে।
common.read_more